/* 
 * AlaUnidadeOperacional.java
 * 
 * Data de criação: 19/09/2010
 * 
 * CORPORATIVO - MTE. 
 *
 */
package br.com.o2solutions.siso.integration.entidade;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import br.com.o2solutions.core.integration.repository.entity.BaseEntity;

/**
 * Classe relacional que representa a associação ManyToMany entre UnidadeOperacional e Ala.
 * 
 * @author Osvaldeir
 * @since  19/09/2010
 *
 */
@Entity
@Table(name="RLALAUNIDADEOPERACIONAL", uniqueConstraints={@UniqueConstraint(columnNames={"ALAID","UNIDADEOPERACIONALID"})})
@SequenceGenerator(name="SQALAUNIDADEOPERACIONAL", sequenceName="SQALAUNIDADEOPERACIONAL")
public class AlaUnidadeOperacional extends BaseEntity<Integer>{

	private static final long serialVersionUID = 1L;
	
	private UnidadeOperacional unidadeOperacional;
	
	private Ala ala;

	@Id
	@Override
	@Column(name="ALAUNIDADEOPERACIONALID" )
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator= "SQALAUNIDADEOPERACIONAL")
	public Integer getId() {
		return super.getId();
	}

	/**
	 * Retorna o(a) unidadeOperacional.
	 * 
	 * @return UnidadeOperacional
	 */
	@ManyToOne
	@JoinColumn(name="UNIDADEOPERACIONALID", nullable=false)
	public UnidadeOperacional getUnidadeOperacional() {
		return unidadeOperacional;
	}

	/**
	 * Atribui o(a) unidadeOperacional.
	 *
	 * @param unidadeOperacional UnidadeOperacional
	 */
	public void setUnidadeOperacional(UnidadeOperacional unidadeOperacional) {
		this.unidadeOperacional = unidadeOperacional;
	}

	/**
	 * Retorna o(a) ala.
	 * 
	 * @return Ala
	 */
	@ManyToOne
	@JoinColumn(name="ALAID", nullable=false)
	public Ala getAla() {
		return ala;
	}

	/**
	 * Atribui o(a) ala.
	 *
	 * @param ala Ala
	 */
	public void setAla(Ala ala) {
		this.ala = ala;
	}

}
